// APP更新
import {
	getAppVersin
} from '@/api/public.js'

function compareVersions(version1, version2) {
	const v1 = version1.split('.');
	const v2 = version2.split('.');
	for (let i = 0; i < Math.max(v1.length, v2.length); i++) {
		const num1 = parseInt(v1[i] || 0);
		const num2 = parseInt(v2[i] || 0);
		if (num1 < num2) {
			return -1; // 第一版本号小于第二版本号
		}
		if (num1 > num2) {
			return 1; // 第一版本号大于第二版本号
		}
	}
	return 0; // 相等
}
export default async function appUpdate() {
	try {
		const {
			data
		} = await getAppVersin()
		// #ifdef APP
		plus.runtime.getProperty(plus.runtime.appid, (wgtinfo) => {
			let version = wgtinfo.version //客户端版本号
			if (compareVersions(version, data.version) === -1) {
				uni.showModal({
					title: '提示',
					content: '发现新的应用安装包，点击确定立即更新',
					success(res) {
						if (res.confirm) {
							uni.showLoading({
								title: '...更新中'
							})
							uni.downloadFile({
								url: data.downloadUrl,
								success(downloadResult) {
									console.log(downloadResult);
									if (downloadResult.statusCode === 200) {
										uni.hideLoading()
										plus.runtime.install(downloadResult.tempFilePath, {
											force: false
										}, function() {
											plus.nativeUI.toast("热更新成功");
											plus.runtime.restart();
										}, function(e) {
											console.log(e)
											plus.nativeUI.toast(`热更新失败:${e.message}`);
										});
									}
								}
							})
						} else {}
					}
				})
			}
		})
		// #endif
	} catch (e) {
		//TODO handle the exception
	}
	// uni.request({
	// 	url: 'http://.......', //检查更新的服务器地址
	// 	data: {},
	// 	success: (res) => {
	// 		plus.runtime.getProperty(plus.runtime.appid, function(wgtinfo) {
	// 			let client_version = wgtinfo.version
	// 			const flag_update = client_version.split(".").splice(0, 2).join(".") != res.data.version.split(".").splice(0, 2).join(".")
	// 			const flag_hot = (Number(client_version.split(".")[2]) < Number(res.data.version.split(".")[2])) & !flag_update
	// 			if (flag_update) {
	// 				// 提醒用户更新
	// 				uni.showModal({
	// 					title: '更新提示',
	// 					content: res.data.note,
	// 					success: (showResult) => {
	// 						if (showResult.confirm) {
	// 							plus.nativeUI.toast("正在准备环境，请稍后!");
	// 							console.log(res.data.url, )
	// 							const dtask = plus.downloader.createDownload(res.data.url, {
	// 								method: 'GET',
	// 								filename: '_doc/update/'
	// 							}, function(d, status) {
	// 								if (status == 200) {
	// 									const path = d.filename; //下载apk
	// 									plus.runtime.install(path); // 自动安装apk文件
	// 								} else {
	// 									plus.nativeUI.alert('版本更新失败:' + status);
	// 								}
	// 							});
	// 							dtask.start();
	// 						}
	// 					}
	// 				})
	// 			} else if (flag_hot) {
	// 				uni.downloadFile({
	// 					url: res.data.wgtUrl,
	// 					success: (downloadResult) => {
	// 						console.log(downloadResult.tempFilePath)
	// 						if (downloadResult.statusCode === 200) {
	// 							plus.nativeUI.toast(`正在热更新!${res.data.versionCode}`);
	// 							plus.runtime.install(downloadResult.tempFilePath, {
	// 								force: false
	// 							}, function() {
	// 								plus.nativeUI.toast("热更新成功");
	// 								plus.runtime.restart();
	// 							}, function(e) {
	// 								console.log(e)
	// 								plus.nativeUI.toast(`热更新失败:${e.message}`);
	// 							});
	// 						}
	// 					}
	// 				});
	// 			}
	// 		});
	// 	}
	// })
}